package src.utils;

/*
    自定义操作数组的工具类
        1.sort方法: 对数组进行从小到大的顺序排列
        2.toString方法: 获取数组的字符串形式
 */
public class MyArrays {
    //外面不能创建对象
    private MyArrays(){

    }

    //1.sort方法: 对数组进行从小到大的顺序排列
    public static void sort(int[] arr) {
        for (int i = 0; i < arr.length - 1; i++) {
            for (int j = 0; j < arr.length - 1 - i; j++) {
                if (arr[j] > arr[j + 1]) {
                    //交换数组元素
                    int temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }
            }
        }
    }
    //2.toString方法: 获取数组的字符串形式
    /*
        {1,2,3,4} ==> [1, 2, 3, 4]

        步骤:
        1.创建StringBuilder对象,用来拼接字符串
        2.遍历数组,拼接数组元素
        3.返回字符串
     */
    /*public static String toString(int[] arr) {
        if(arr == null) {
            return "null";
        }
        //最大索引
        int maxIndex = arr.length-1;
        if(maxIndex == -1) {
            return "[]";
        }
        //1.创建StringBuilder对象,用来拼接字符串
        StringBuilder sb = new StringBuilder();
        sb.append("[");

        //2.遍历数组,拼接数组元素
        for(int i = 0;i<arr.length;i++) {
            //2.1 拼接数组元素
            sb.append(arr[i]);
            //2.2 拼接", ",只要不是最后一个元素
            if(i!=maxIndex) {
                sb.append(", ");
            }
        }
        //说明最后一个元素已经拼接完了
        return sb.append("]").toString();
    }*/

    public static String toString(int[] arr) {
        if(arr == null) {
            return "null";
        }
        //最大索引
        int maxIndex = arr.length-1;
        if(maxIndex == -1) {
            return "[]";
        }
        //1.创建StringBuilder对象,用来拼接字符串
        StringBuilder sb = new StringBuilder();
        sb.append("[");

        //2.遍历数组,拼接数组元素
        for(int i = 0;;i++) {
            //2.1 拼接数组元素
            sb.append(arr[i]);
            //最后一个元素
            if(i==maxIndex) {
                return sb.append("]").toString();
            }
            //2.2 拼接", ",只要不是最后一个元素
            sb.append(", ");
        }

    }
}
